<?php

/**
 * alltosun.com 用户模型 user.php
 * ============================================================================
 * 版权所有 (C) 2009-2011 北京互动阳光科技有限公司，并保留所有权利。
 * 网站地址: http://www.alltosun.com
 * ----------------------------------------------------------------------------
 * 许可声明：这是一个开源程序，未经许可不得将本软件的整体或任何部分用于商业用途及再发布。
 * ============================================================================
 * $Author: 高竞竞 (gaojj@alltosun.com) $
 * $Date: 2011-1-12 下午12:58:00 $
 * $Id: user.php 5548 2012-11-22 04:29:35Z weisd $
*/

class user_model extends ModelRes
{
    /**
     * 按照用户角色获取用户列表，支持排序，分页
     * @notice 该方法关闭了缓存，建议只在管理后台使用
     * @param int $role_id 角色id
     * @param string $limit SQL中的limit语句，可添加order by
     * @return array
     */
    public function get_list_by_role_id($role_id, $limit = 'ORDER BY `id` DESC LIMIT 0, 30')
    {
        $role_id = (int)$role_id;
        if (!$role_id) {
            return array();
        }

        // 联表，关闭缓存
        $this->cache = 0;

        $user_table = $this->table;
        $role_user_table = $this->table_pre.'role_user';

        $sql = "SELECT * FROM `{$user_table}` u
                LEFT JOIN `{$role_user_table}` ru
                ON u.`id`=ru.`user_id`
                WHERE ru.`role_id`='{$role_id}' AND u.`status`='1'
                $limit";

        return $this->__call('getAll', array($sql));
    }

    /**
     * 照用户角色获取用户总数
     * @notice 该方法关闭了缓存，建议只在管理后台使用
     * @param $role_id 角色id
     * @return int
     */
    public function get_total_by_role_id($role_id)
    {
        $role_id = (int)$role_id;
        if (!$role_id) {
            return 0;
        }

        // 联表，关闭缓存
        $this->cache = 0;

        $user_table = $this->table;
        $role_user_table = $this->table_pre.'role_user';

        $sql = "SELECT COUNT(*) FROM `{$user_table}` u
                LEFT JOIN `{$role_user_table}` ru
                ON u.`id`=ru.`user_id`
                WHERE ru.`role_id`='{$role_id}' AND u.`status`='1'";

        return $this->__call('getOne', array($sql));
    }
    /**
     * [联表查询 role_id=10为市场人员 参考user_config配置]
     * [后台使用]
     * @return [type] [description]
     */
    public function get_total_marketing_cnt($register_time = '')
    {
        // 联表，关闭缓存
        $this->cache = 0;

        $user_table = $this->table;
        $role_user_table = $this->table_pre.'role_user';

        if ($register_time) {
            $register_time = 'AND u. `add_time` <=' .$register_time;
        }
        $sql = "SELECT COUNT(*) FROM `{$user_table}` u
                LEFT JOIN `{$role_user_table}` ru
                ON u.`id`=ru.`user_id`
                WHERE ru.`role_id`= '10' AND u.`status`='1' AND u. `is_enable`= '1' ".$register_time;

        return $this->__call('getOne', array($sql));
    }
}
?>
